package com.atguigu.principle.liskov.improve;

/**
 * @program: design-patterns
 * @author: yangshen
 * @description: 里氏替换原则
 * @create: 2022-01-10 22:42
 **/
public class Liskov {
    public static void main(String[] args) {
        A a = new A();
        System.out.println("11-3=" + a.func1(11, 3));
        System.out.println("1-8=" + a.func1(1, 8));

        System.out.println("-----------------------");

        B b = new B();
        //因为B类不再继承A类，因此调用者，func1不会再是求减法
        System.out.println("11+3=" + b.func1(11, 3));
        System.out.println("1+8=" + b.func1(1, 8));

        System.out.println("11+3+9=" + b.func2(11, 3));

        //使用组合仍然可以使用到A类相关方法
        System.out.println("11-3=" + b.func3(11, 3));
    }
}
